iT邦幫忙

0

21 : 加入任務時間/日期欄位

  • 分享至 

  • xImage
  •  
  1. 在每個任務中新增時間/日期欄位
    • 每個待辦事項可以設定完成時間或到期日期
    • 保留分類標籤(工作、學習、個人、健康)
    • 在 UI 中顯示時間/日期欄位,方便使用者查看

  2. 新增任務時可設定時間
    • 新增任務表單提供時間/日期選擇器
    • 如果未選擇,預設為空白或今日日期
    • 保持新增任務插入列表最前方(未完成的任務)

  3. 任務排序與顯示
    • 任務仍按照完成狀態排序:未完成在上方,已完成在下方
    • 時間/日期欄位僅作為資訊顯示,不影響打勾移動邏輯

// todo_item.dart
class ToDoItem {
 String title;
 String label; // 分類標籤
 DateTime? dueDate; // 新增時間/日期欄位
 bool isDone;

 ToDoItem({
   required this.title,
   required this.label,
   this.dueDate,
   this.isDone = false,
 });
}

// main.dart - 新增任務
void _addToDoItem(String task, String label, DateTime? dueDate) {
 setState(() {
   _todoList.insert(
     0,
     ToDoItem(title: task, label: label, dueDate: dueDate),
   );
 });
}

// todo_item_widget.dart - 顯示時間/日期
Widget _buildToDoItem(ToDoItem item) {
 return Card(
   child: ListTile(
     leading: Checkbox(
       value: item.isDone,
       onChanged: (value) {
         setState(() {
           item.isDone = value!;
         });
       },
     ),
     title: Text(
       item.title,
       style: TextStyle(
         decoration: item.isDone ? TextDecoration.lineThrough : null,
       ),
     ),
     subtitle: item.dueDate != null
         ? Text('到期: ${DateFormat('yyyy/MM/dd HH:mm').format(item.dueDate!)}')
         : null,
     trailing: Text(item.label),
   ),
 );
}

https://ithelp.ithome.com.tw/upload/images/20251015/201789003BF1QTwDZv.png


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言